package com.edu.schoolforum.mapper;

import com.edu.schoolforum.dto.AvatarUrlRequestDto;
import com.edu.schoolforum.dto.UpdateUserLikePostDto;
import com.edu.schoolforum.pojo.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author tao
 * @date 2021/8/8 11:42
 */
@Mapper
public interface PostMapper {
    /**
     * 分页查询帖子（板块分页）
     * @return
     */
    List<Post> selectPage(String plate);

    /**
     * 分页查询（首页分页）
     * @return
     */
    List<Post> mselectPage();
    /**
     * 获取所有的帖子
     */
    List<Post> selectAllPost();
    /**
     * 发布帖子
     */
    int insertPost(Post post);

    /**
     * 回复帖子
     * @param replyPost
     * @return
     */
    int insertReplyPost(ReplyPost replyPost);
    /**
     * 获取帖子的评论
     */
    List<ReplyPost> selectReplyPost(Integer id);
    /**
     * 获取帖子的信息
     */
    Post selectOnePost(Integer id);

    /**
     * 帖子点赞数
     * @param postLikes
     * @return
     */
    int updatePostLikes(PostLikes postLikes);
    /**
     * 获取帖子的评论数
     */
    int getReplyPostCount(Integer id);
    /**
     * 检验点赞信息
     *
     */
    LikeMessage getLikeMessage(LMessage lMessage);
    /**
     * 存入点赞信息
     */
    int insertLikeMessage(LikeMessage lik);

    /**
     * 获取用户发布的帖子总点赞数
     * @param name
     * @return
     */
    int getUserAllLikesCount(String name);
    /**
     * 搜索框（根据模糊查询帖子信息）
     */
    List<Post> getDimPost(String dimTitle);
    /**
     * 获取帖子点赞状态
     */
    int getPostLikeStatus(LMessage lMessage);
    /**
     * 修改帖子点赞的状态
     */
    int updatePostLikeStatus(UpdateUserLikePostDto updateUserLikePostDto);
    /**
     * 获取用户发布帖子的总数
     */
    int getUserPostCount(String userName);
    /**
     * 获取用户的总评论数
     */
    int getUserPostCommentCount(String userName);
    /**
     * 根据id在用户评论帖子的时候自动给帖子评论数加1
     */
    int CommentCountAdd(Integer id);
    /**
     * 查询用户发布的帖子
     */
    List<Post> getUserPosts(String userName);
    /**
     * 删除用户的帖子
     */
    int deleteUserPost(LMessage lMessage);
    /**
     * 删除帖子的评论
     */
    int deletePostComment(Integer id);
    /**
     * 获取板块帖子数
     */
    int getPlatePostCount(String plate);
    /**
     * 修改帖子头像地址
     */
     int updatePostAvatar(AvatarUrlRequestDto avatarUrlRequestDto);
    /**
     * 修改评论帖子头像地址
     */
    int updateReplyAvatar(AvatarUrlRequestDto avatarUrlRequestDto);



}
